AWS Lambda
サーバレスなのでサーバ不要
スケーリングする
非同期呼び出しされると、Lambda側で自動リトライされる代わりに多重起動される可能性がある
Lambdaのコードを書くときに冪等性を担保する仕組みを自分たちで実装する必要がある
料金体系
AWS Lambda では、使用した分の料金が発生します。関数に対するリクエストの数とコードの実行時間に基づいて課金されます。
実行時間は、コードの実行が開始された瞬間から、その処理が返される、もしくは中止されるまでの時間で計算され、値は 100 ミリ秒単位で切り上げられます。料金は関数に割り当てたメモリ量により異なります。AWS Lambda のリソースモデルでは、お客様が関数に必要なメモリ量を指定すると、それに比例した CPU パワーとその他のリソースが割り当てられます。メモリサイズが増えると、関数で利用可能な CPU にも同等の増加が発生します。詳細については、関数の設定に関するドキュメントをご参照ください。
AWS Lambda の無料利用枠には、1 か月ごとに 100 万件の無料リクエスト、および 40 万 GB-秒のコンピューティング時間が、それぞれ含まれます。
実行時間に対する料金は、関数に割り当てたメモリ量により異なります。128 MB から 3,008 MB までの任意の量のメモリを 64 MB 単位で関数に割り当てることができます。次の表には、さまざまなメモリサイズに対応した 100 ミリ秒あたりの料金について、その一部を示しています。
つまり関数に割り当てるメモリ量を増やせば、実行時間単位の課金額が増えるので、結果的に無料枠が短くなる、ということなんだろうか?
まぁお試しで作るときはメモリかなり少なめにしとけば良いだろう
Lambda Functions
Lambdaといえばこれ
実行時間の上限が最長15分までという制限がある
Lambda Applications
Lambdaと聞けばLambda Functionのほうが浮かぶけれど、アプリケーションってなんだろ
AWS Lambda アプリケーションは、 Lambda 関数、イベントソース、およびその他のリソースを組み合わせたもので、協調して動作することによってタスクを実行します。AWS CloudFormation および他のツールを使用すると、アプリケーションのコンポーネントを単一パッケージに収集して、1 つのリソースとしてデプロイし管理できます。アプリケーションは Lambda プロジェクトを移植して、AWS CodePipeline、AWS CodeBuild や AWS サーバーレスアプリケーションモデル コマンドラインインターフェース (SAM CLI) などの追加の開発者用ツールと統合できるようにします。
どうやら連携して動作するリソースの組み合わせをアプリケーションと呼んでいるらしい
よくあるのがCloudWatchEventと組み合わせて定期実行ジョブとして使う
「Scheduled Job」として提供されている
SNSにデータが入るとLambdaが起動する
「Notifications Processing」として提供されている
など
とりあえず定期実行ジョブとして作成したいんで「Scheduled Job」を選ぶ
https://gyazo.com/67010e820f3eadb023c3b52bf77bd0c4
これらの一連のサービスをまるっと作ってくれるみたい